home *** CD-ROM | disk | FTP | other *** search
- ;;; -*- Scheme -*-
-
- #|
-
- Copyright (c) 1986-91 Massachusetts Institute of Technology
-
- This material was developed by the Scheme project at the Massachusetts
- Institute of Technology, Department of Electrical Engineering and
- Computer Science. Permission to copy this software, to redistribute
- it, and to use it for any purpose is granted, subject to the following
- restrictions and understandings.
-
- 1. Any copy made of this software must include this copyright notice
- in full.
-
- 2. Users of this software agree to make their best efforts (a) to
- return to the MIT Scheme project any improvements or extensions that
- they make, so that these may be included in future releases; and (b)
- to inform MIT of noteworthy uses of this software.
-
- 3. All materials developed as a consequence of the use of this
- software shall duly acknowledge such use, in accordance with the usual
- standards of acknowledging credit in academic research.
-
- 4. MIT has made no warrantee or representation that the operation of
- this software will be error-free, and MIT is under no obligation to
- provide any services, by way of maintenance, update, or otherwise.
-
- 5. In conjunction with products arising from the use of this material,
- there shall be no use of the name of the Massachusetts Institute of
- Technology nor of any adaptation thereof in any advertising,
- promotional, or sales literature without prior written consent from
- MIT in each case.
-
- |#
-
- ;;;; System dependent stuff for box and pointer diagram printer
- ;; MacScheme implementation
-
- (define screen
- (make-rect (make-vect 5 250)
- (make-vect 460 0)
- (make-vect 0 -250)))
-
- (define (drawline start-point end-point)
- (draw-line (round (xcor start-point))
- (round (ycor start-point))
- (round (xcor end-point))
- (round (ycor end-point))))
-
- (define character-width 8)
- (define character-height 10)
-
- (define (sign x)
- (if (< x 0) -1 1))
-
- (define (text-picture string)
- (let ((width (* character-width (string-length string)))
- (height character-height))
- (lambda (rectangle)
- (let ((rwidth (abs (round (xcor (horiz rectangle)))))
- (rheight (abs (round (ycor (vert rectangle))))))
- (if (or (< rwidth width) (< rheight height))
- (default-text-picture rectangle)
- (begin
- (move-to (round (+ (xcor (origin rectangle))
- (* (sign (xcor (horiz rectangle)))
- (/ (- rwidth width) 2))))
- (round (+ (ycor (origin rectangle))
- (* (sign (ycor (vert rectangle)))
- (/ (- rheight height) 2)))))
- (draw-string string)))))))
-
- ;; clear-graphics is predefined.
- (define initialize-graphics start-graphics)
-
- (define (draw pict)
- (clear-graphics)
- (delay-time 180)
- (pict screen))
-
- (define (draw-permanent picture)
- (clear-graphics)
- (draw-picture (picture screen)))
-
- (define double-quote-string "\"")
-
-